{
    //Double_t d0sig_t[] = {4.5, 5.0, 5.5, 6.0, 6.5, 7.0, 7.5};
    Double_t d0sig_t[] = {5.0};
    bool     proof     = false;         //setting the usage of PROOF
    bool     test      = false;         //switch for running on testing datasets (2010 periodG)
    //Int_t cache_size   = 10*1024*1024;  //setting cache size for TTreeCache, unit is byte (0 == disable caching)
    Int_t cache_size   = 0;  //setting cache size for TTreeCache, unit is byte (0 == disable caching)

    if ( proof ) {
        gROOT->LoadMacro("analysis_proof.cxx");
    } else {
        gROOT->LoadMacro("analysis2.cxx");
    }

    for ( int i=0; i < sizeof(d0sig_t)/sizeof(Double_t); i++ ) {
        // without btagging and triangle cuts in event selection, jet multiplicity
        run_analysis(false, false, d0sig_t[i], test, cache_size);
 
        // with only btagging cut in event selection, jet multiplicity
        //run_analysis(true, false, d0sig_t[i], test, cache_size);
 
        // with only triangule cut in event selection, jet multiplicity
        //run_analysis(false, true, d0sig_t[i], test, cache_size);
 
        // with both btagging and triangle cuts in event selection, jet multiplicity
        //run_analysis(true, true, d0sig_t[i], test, cache_size);
    }
}
